package wetogether.travelinfo.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import wetogether.travelinfo.vo.TravelCommentVO;
import wetogether.travelinfo.vo.TravelFrVO;
import wetogether.travelinfo.vo.TravelImageVO;
import wetogether.travelinfo.vo.TravelInfoVO;
import wetogether.travelinfo.vo.TravelVacancyVO;
import wetogether.travelinfo.vo.TravelZoneVO;

public class OutputTravelInfoDAOImpl extends SqlMapClientDaoSupport implements OutputTravelInfoDAO {
	/**
	 * 추천 여행지 랭킹 가져오기
	 */
	@Override
	public List<Map> getTravelPlaceRanking(int locationid) throws SQLException {
		return super.getSqlMapClientTemplate().queryForList("traveloutput.getTravelPlaceRanking",locationid);
	}
	////////////////////////////////////
	// Update 전에 확인
	////////////////////////////////////
	/**
	 * 0. 지역정보 가져오기
	 */
	@Override
	public TravelZoneVO getTravelZone(int locationid) throws SQLException {
		return (TravelZoneVO) super.getSqlMapClientTemplate().queryForObject("traveloutput.getTravelZone",locationid);
	}
	/**
	 * 1. 여행정보 가져오기
	 */
	@Override
	public TravelInfoVO getTravelInfo(String place) throws SQLException {
		return (TravelInfoVO)super.getSqlMapClientTemplate().queryForObject("traveloutput.getTravelInfo",place);
	}
	/**
	 * 2. 이미지 리스트 가져오기 - 입력 전 있는 지 확인 용도로도 씀
	 */
	@Override
	public List<String> getPlaceImageList(String place) throws SQLException {
		return super.getSqlMapClientTemplate().queryForList("traveloutput.getPlaceImageList",place);
	}
	/**
	 * 3. 숙박 리스트 가져오기
	 */
	@Override
	public List<TravelVacancyVO> getPlaceVacancyList(String place)
			throws SQLException {
		return super.getSqlMapClientTemplate().queryForList("traveloutput.getPlaceVacancyList",place);
	}
	/**
	 * 4. 맛집 리스트 가져오기
	 */
	@Override
	public List<TravelFrVO> getPlaceFrList(String place) throws SQLException {
		return super.getSqlMapClientTemplate().queryForList("traveloutput.getPlaceFrList",place);
	}
	/**
	 * 5. 댓글 리스트 가져오기
	 */
	@Override
	public List<TravelCommentVO> getPlaceCommentList(String place)
			throws SQLException {
		return super.getSqlMapClientTemplate().queryForList("traveloutput.getPlaceCommentList",place);
	}
	/**
	 * 6. 회원이 쓴 본인의 글 가져오기
	 */
	@Override
	public TravelCommentVO getPlaceComment(TravelCommentVO commentVO)
			throws SQLException {
		return (TravelCommentVO)super.getSqlMapClientTemplate().queryForObject("traveloutput.getPlaceComment",commentVO);
	}
	////////////////////////////////////
	// Input 전에 확인
	////////////////////////////////////
	/**
	 * 존재하는 지역 리스트 받아오기
	 */
	@Override
	public List<TravelZoneVO> findTravelZoneList() throws SQLException {
		return super.getSqlMapClientTemplate().queryForList("traveloutput.findTravelZoneList");
	}
	/**
	 * 해당 지역의 존재하는 여행지 리스트 받아오기
	 */
	@Override
	public List<String> findTravelPlaceList(int locationid)
			throws SQLException {
		return super.getSqlMapClientTemplate().queryForList("traveloutput.findTravelPlaceList",locationid);
	}
	/**
	 * 이미지 정보 모두 리스트로 받아오기
	 */
	@Override
	public List<TravelImageVO> getTotalPlaceImageList(String place)
			throws SQLException {
		return super.getSqlMapClientTemplate().queryForList("traveloutput.getTotalPlaceImageList",place);
	}
	/**
	 * 공지 입력 전, 있는지 확인
	 */
	@Override
	public String isPlaceNotice(String place) throws SQLException {
		return (String)super.getSqlMapClientTemplate().queryForObject("traveloutput.isPlaceNotice",place);
	}
	/**
	 * 숙박 입력 전, 있는지 확인
	 */
	@Override
	public List<String> isPlaceVacancy(String place) throws SQLException {
		return super.getSqlMapClientTemplate().queryForList("traveloutput.isPlaceVacancy",place);
	}
	/**
	 * 맛집 입력 전, 있는지 확인
	 */
	@Override
	public List<String> isPlaceFr(String place) throws SQLException {
		return super.getSqlMapClientTemplate().queryForList("traveloutput.isPlaceFr",place);
	}
}
